Estoy tratando de consultar un documento único usando su ObjectId. Sin embargo, aparece el error:
DoesNotExist: la consulta de coincidencia de ruta no existe
Cuando, al pasar esto a mi vista como solicitud, imprime el ObjectId correspondiente en el formulario de tipo ObjectId. Por lo tanto, no debería haber ningún problema con la línea route_test = Route.objects.get(id=_id) . Tengo el siguiente código:
vistas.py
def update(request): if request.method == "POST": _id = request.POST.get('_id',ObjectId()) print(_id) route_id = request.POST.get('route_id','') geometry = request.POST.get('geometry', '') properties = request.POST.get('properties','') #r = Route.objects.get(route_id='LTFRB_PUJ2616') --> I cannot use this #because it has 5 instances (Not Unique) #print (r["id"],r["properties"]) test = Route.objects.get(id = ObjectId('587c4c3b203ada19e8e0ecf6')) print (test["id"], test["properties"]) try: route_test = Route.objects.get(id=_id) print(route_test) Route.objects.get(id=_id).update(set__geometry=geometry, set__properties=properties) return HttpResponse("Success!") except: return HttpResponse("Error!")ajax
var finishBtn = L.easyButton({ id:'finish', states: [{ icon:"fa fa-check", onClick: function(btn){ selectedFeature.editing.disable(); layer.closePopup(); var editedFeature = selectedFeature.toGeoJSON(); alert("Updating:" + editedFeature.route_id); $.ajax({ url: "/update/", data: {id:editedFeature.id, route_id: JSON.stringify(editedFeature.route_id), geometry: JSON.stringify(editedFeature.geometry), properties: JSON.stringify(editedFeature.properties) }, type: 'POST' }); }modelo.py
from __future__ import unicode_literals from mongoengine import * class Route(Document): type = StringField(required=True) route_id = StringField(required=True) geometry = LineStringField() properties = DictField() meta = {'collection':'routes'} ¿Lo que debe hacerse? Incluso la línea test = Route.objects.get(id = ObjectId('587c4c3b203ada19e8e0ecf6')) donde proporcioné directamente el _id entrante tiene el mismo error...